package com.example.lambda;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @Author: 朝花不迟暮
 * @Description: 工作中，排序的需求比较多，使用sorted+Comparator排序，真的很香。
 * @Date: 2022/11/4
 */
public class SortComparatorSample {

    public static void main(String[] args) {
        List<UserInfo> userInfoList = new ArrayList<>();
        userInfoList.add(new UserInfo(1L, "捡田螺的小男孩", 18));
        userInfoList.add(new UserInfo(3L, "捡瓶子的小男孩", 26));
        userInfoList.add(new UserInfo(2L, "程序员田螺", 27));

        // sorted + Comparator.comparing 排序列表，
        userInfoList = userInfoList.stream()
                .sorted(Comparator.comparing(UserInfo::getAge))
                .collect(Collectors.toList());
        userInfoList.forEach(a -> System.out.println(a.toString()));

        System.out.println("开始降序排序");

        // 如果想降序排序，则可以使用加reversed()
        userInfoList = userInfoList.stream()
                .sorted(Comparator.comparing(UserInfo::getAge).reversed())
                .collect(Collectors.toList());
        userInfoList.forEach(a -> System.out.println(a.toString()));
    }
}
